/******************************************************************************
 * * setting_display.h - data structure for setting display sub-module
 *
 * *(C) Copyright 2019 Asr International Ltd.
 * * All Rights Reserved
 * ******************************************************************************/
#ifndef SETTING_DISPLAY_H
#define SETTING_DISPLAY_H

#ifdef __cplusplus
extern "C" {
#endif

typedef enum
{
    SETTING_BACKLIGHT_INTENSITY_1 = 0,                                          // backlight intensity level 1
    SETTING_BACKLIGHT_INTENSITY_2,                                              // backlight intensity level 2
    SETTING_BACKLIGHT_INTENSITY_3,                                              // backlight intensity level 3
    SETTING_BACKLIGHT_INTENSITY_4,                                              // backlight intensity level 4
    SETTING_BACKLIGHT_INTENSITY_5                                               // backlight intensity level 5
} SETTING_BACKLIGHT_INTENSITY;

typedef enum
{
    SETTING_BACKLIGHT_TIMEOUT_10 = 0,                                           // backlight intensity level 1
    SETTING_BACKLIGHT_TIMEOUT_20,                                               // backlight intensity level 2
    SETTING_BACKLIGHT_TIMEOUT_40,                                               // backlight intensity level 3
    SETTING_BACKLIGHT_TIMEOUT_60,                                               // backlight intensity level 4
    SETTING_BACKLIGHT_TIMEOUT_120                                               // backlight intensity level 5
} SETTING_BACKLIGHT_TIMEOUT;

typedef enum
{
    SETTING_STANDBY_SCREEN_OFF = 0,                                             // standby screen off
    SETTING_STANDBY_SCREEN_ON,                                                  // standby screen on
    SETTING_STANDBY_SCREEN_1_HOUR                                               // standby screen timeout 1 hour
} SETTING_STANDBY_SCREEN;

#define SETTING_MAX_WALL_PAPER_NUM    2                                         // support only 2 wall papers
typedef struct
{
    UINT16       WallpaperNameID;
    VOID         *WallPaper;
} Setting_Display_Wall_Paper_t;

typedef struct
{
    UINT8                       CurrentWallPaperIndex;                        // current wall paper index
    SETTING_BACKLIGHT_INTENSITY BacklightIntensity;                           // backlight intensity level
    SETTING_BACKLIGHT_TIMEOUT   BacklightTimeout;                             // backlight timeout value
    SETTING_STANDBY_SCREEN      StandbyScreenMode;                            // screen standby mode
} Setting_Display_Setting_Mng_t;

extern Setting_Display_Wall_Paper_t  SettingWallPaterList[SETTING_MAX_WALL_PAPER_NUM];
extern Setting_Display_Setting_Mng_t g_SettingDisplaySettingMng;

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /*SETTING_DISPLAY_H*/
